package com.ny.interceptor;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
    @Resource
    LoginInterceptor loginInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        /**
         * 登录拦截器
         * */
        registry.addInterceptor(loginInterceptor)
                // 1. 拦截所有路径（关键修改：用 /** 替代原有的具体路径）
                .addPathPatterns("/**")
                // 2. 排除登录路径（保持不变，确保登录接口可匿名访问）
                .excludePathPatterns("/login")
                // 3. 排除注册路径（保持不变，确保注册接口可匿名访问）
                .excludePathPatterns("/register")
                // 5. 添加重置密码路径（保持不变，确保重置密码接口可匿名访问）
                .excludePathPatterns("/sendResetCode")
                .excludePathPatterns("/resetPassword")

                // 若需测试时跳过登录验证，可临时排除该接口（生产环境不建议）
                .excludePathPatterns("/device/findAll")  // 在addInterceptors方法中添加
                .excludePathPatterns("/device/add")
                .excludePathPatterns("/device/delete")
                .excludePathPatterns("/sensor-data")
                .excludePathPatterns("/set-all-properties")
                // 4. （可选补充）若有静态资源（如前端页面、JS/CSS），需排除，避免拦截
                // .excludePathPatterns("/static/**", "/index.html")
                .order(1); // 拦截器执行顺序（数字越小越先执行，若有多个拦截器需调整）

    }
}

